<!DOCTYPE html>
<meta charset="utf-8">
<title>Battery test: IDL</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/WebIDLParser.js"></script>
<script src="/resources/idlharness.js"></script>
<script type="text/plain" class="untested">
interface Navigator { };

interface EventTarget {
  void addEventListener(DOMString type, EventListener? callback, optional boolean capture);
  void removeEventListener(DOMString type, EventListener? callback, optional boolean capture);
  boolean dispatchEvent(Event event);
};

[Callback]
interface EventListener {
  void handleEvent(Event event);
};
</script>
<script type="text/plain">
partial interface Navigator {
    Promise<BatteryManager> getBattery ();
};

interface BatteryManager : EventTarget {
    readonly attribute boolean             charging;
    readonly attribute unrestricted double chargingTime;
    readonly attribute unrestricted double dischargingTime;
    readonly attribute double              level;
             attribute EventHandler        onchargingchange;
             attribute EventHandler        onchargingtimechange;
             attribute EventHandler        ondischargingtimechange;
             attribute EventHandler        onlevelchange;
};
</script>
<script>
"use strict";
var idl_array = new IdlArray();
var idls;
[].forEach.call(document.querySelectorAll('script[type=text\\/plain]'), function(node) {
  // replace 'EventHandler' and 'unrestricted double' unrecognized by idlharness.js
  idls = node.textContent.replace(/EventHandler/g, 'Function?').replace(/unrestricted double/g, 'double');
  idl_array[(node.className === 'untested') ? 'add_untested_idls' : 'add_idls'](idls);
});
idl_array.add_objects({Navigator: ['navigator'], BatteryManager: ['navigator.getBattery()']});
idl_array.test();
</script>

<h2>Description</h2>
<p>
  This test validates the BatteryManager interface IDL.
</p>
<p>
  This test uses <a href="/resources/idlharness.js">idlharness.js</a>, and
  is complementary to the <a href="battery-interface.html">battery-interface.html</a>
  test.
</p>

<div id="log"></div>
